<!DOCTYPE html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <title>Code Coverage for C:\www\html\feedback\app\Services/Account.php</title>
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link href="css/bootstrap.min.css" rel="stylesheet">
  <link href="css/bootstrap-responsive.min.css" rel="stylesheet">
  <link href="css/style.css" rel="stylesheet">
  <!--[if lt IE 9]>
  <script src="js/html5shiv.js"></script>
  <![endif]-->
 </head>
 <body>
  <header>
   <div class="container">
    <div class="row">
     <div class="span12">
      <ul class="breadcrumb">
        <li><a href="index.html">C:\www\html\feedback\app\Services</a> <span class="divider">/</span></li>
        <li class="active">Account.php</li>

      </ul>
     </div>
    </div>
   </div>
  </header>
  <div class="container">
   <table class="table table-bordered">
    <thead>
     <tr>
      <td>&nbsp;</td>
      <td colspan="10"><div align="center"><strong>Code Coverage</strong></div></td>
     </tr>
     <tr>
      <td>&nbsp;</td>
      <td colspan="3"><div align="center"><strong>Classes and Traits</strong></div></td>
      <td colspan="4"><div align="center"><strong>Functions and Methods</strong></div></td>
      <td colspan="3"><div align="center"><strong>Lines</strong></div></td>
     </tr>
    </thead>
    <tbody>
     <tr>
      <td class="danger">Total</td>
      <td class="danger big">       <div class="progress progress-danger" style="width: 100px;">
        <div class="bar" style="width: 0.00%;"></div>
       </div>
</td>
      <td class="danger small"><div align="right">0.00%</div></td>
      <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
      <td class="success big">       <div class="progress progress-success" style="width: 100px;">
        <div class="bar" style="width: 87.50%;"></div>
       </div>
</td>
      <td class="success small"><div align="right">87.50%</div></td>
      <td class="success small"><div align="right">7&nbsp;/&nbsp;8</div></td>
      <td class="success small"><acronym title="Change Risk Anti-Patterns (CRAP) Index">CRAP</acronym></td>
      <td class="success big">       <div class="progress progress-success" style="width: 100px;">
        <div class="bar" style="width: 96.39%;"></div>
       </div>
</td>
      <td class="success small"><div align="right">96.39%</div></td>
      <td class="success small"><div align="right">80&nbsp;/&nbsp;83</div></td>
     </tr>

     <tr>
      <td class="danger">Account</td>
      <td class="danger big">       <div class="progress progress-danger" style="width: 100px;">
        <div class="bar" style="width: 0.00%;"></div>
       </div>
</td>
      <td class="danger small"><div align="right">0.00%</div></td>
      <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
      <td class="success big">       <div class="progress progress-success" style="width: 100px;">
        <div class="bar" style="width: 87.50%;"></div>
       </div>
</td>
      <td class="success small"><div align="right">87.50%</div></td>
      <td class="success small"><div align="right">7&nbsp;/&nbsp;8</div></td>
      <td class="success small">20</td>
      <td class="success big">       <div class="progress progress-success" style="width: 100px;">
        <div class="bar" style="width: 96.39%;"></div>
       </div>
</td>
      <td class="success small"><div align="right">96.39%</div></td>
      <td class="success small"><div align="right">80&nbsp;/&nbsp;83</div></td>
     </tr>

     <tr>
      <td class="success" colspan="4">&nbsp;<a href="#22">checkToken()</a></td>
      <td class="success big">       <div class="progress progress-success" style="width: 100px;">
        <div class="bar" style="width: 100.00%;"></div>
       </div>
</td>
      <td class="success small"><div align="right">100.00%</div></td>
      <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
      <td class="success small">4</td>
      <td class="success big">       <div class="progress progress-success" style="width: 100px;">
        <div class="bar" style="width: 100.00%;"></div>
       </div>
</td>
      <td class="success small"><div align="right">100.00%</div></td>
      <td class="success small"><div align="right">20&nbsp;/&nbsp;20</div></td>
     </tr>

     <tr>
      <td class="success" colspan="4">&nbsp;<a href="#66">authenticate($post)</a></td>
      <td class="success big">       <div class="progress progress-success" style="width: 100px;">
        <div class="bar" style="width: 100.00%;"></div>
       </div>
</td>
      <td class="success small"><div align="right">100.00%</div></td>
      <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
      <td class="success small">2</td>
      <td class="success big">       <div class="progress progress-success" style="width: 100px;">
        <div class="bar" style="width: 100.00%;"></div>
       </div>
</td>
      <td class="success small"><div align="right">100.00%</div></td>
      <td class="success small"><div align="right">18&nbsp;/&nbsp;18</div></td>
     </tr>

     <tr>
      <td class="success" colspan="4">&nbsp;<a href="#100">_generateToken($id, $name, $time)</a></td>
      <td class="success big">       <div class="progress progress-success" style="width: 100px;">
        <div class="bar" style="width: 100.00%;"></div>
       </div>
</td>
      <td class="success small"><div align="right">100.00%</div></td>
      <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
      <td class="success small">1</td>
      <td class="success big">       <div class="progress progress-success" style="width: 100px;">
        <div class="bar" style="width: 100.00%;"></div>
       </div>
</td>
      <td class="success small"><div align="right">100.00%</div></td>
      <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
     </tr>

     <tr>
      <td class="success" colspan="4">&nbsp;<a href="#107">clearUserData()</a></td>
      <td class="success big">       <div class="progress progress-success" style="width: 100px;">
        <div class="bar" style="width: 100.00%;"></div>
       </div>
</td>
      <td class="success small"><div align="right">100.00%</div></td>
      <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
      <td class="success small">1</td>
      <td class="success big">       <div class="progress progress-success" style="width: 100px;">
        <div class="bar" style="width: 100.00%;"></div>
       </div>
</td>
      <td class="success small"><div align="right">100.00%</div></td>
      <td class="success small"><div align="right">3&nbsp;/&nbsp;3</div></td>
     </tr>

     <tr>
      <td class="success" colspan="4">&nbsp;<a href="#120">prepareUpdate($post, $user)</a></td>
      <td class="success big">       <div class="progress progress-success" style="width: 100px;">
        <div class="bar" style="width: 100.00%;"></div>
       </div>
</td>
      <td class="success small"><div align="right">100.00%</div></td>
      <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
      <td class="success small">5</td>
      <td class="success big">       <div class="progress progress-success" style="width: 100px;">
        <div class="bar" style="width: 100.00%;"></div>
       </div>
</td>
      <td class="success small"><div align="right">100.00%</div></td>
      <td class="success small"><div align="right">15&nbsp;/&nbsp;15</div></td>
     </tr>

     <tr>
      <td class="success" colspan="4">&nbsp;<a href="#152">prepareInsert($post)</a></td>
      <td class="success big">       <div class="progress progress-success" style="width: 100px;">
        <div class="bar" style="width: 100.00%;"></div>
       </div>
</td>
      <td class="success small"><div align="right">100.00%</div></td>
      <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
      <td class="success small">5</td>
      <td class="success big">       <div class="progress progress-success" style="width: 100px;">
        <div class="bar" style="width: 100.00%;"></div>
       </div>
</td>
      <td class="success small"><div align="right">100.00%</div></td>
      <td class="success small"><div align="right">19&nbsp;/&nbsp;19</div></td>
     </tr>

     <tr>
      <td class="success" colspan="4">&nbsp;<a href="#184">getAdminsToNotify()</a></td>
      <td class="success big">       <div class="progress progress-success" style="width: 100px;">
        <div class="bar" style="width: 100.00%;"></div>
       </div>
</td>
      <td class="success small"><div align="right">100.00%</div></td>
      <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
      <td class="success small">1</td>
      <td class="success big">       <div class="progress progress-success" style="width: 100px;">
        <div class="bar" style="width: 100.00%;"></div>
       </div>
</td>
      <td class="success small"><div align="right">100.00%</div></td>
      <td class="success small"><div align="right">4&nbsp;/&nbsp;4</div></td>
     </tr>

     <tr>
      <td class="danger" colspan="4">&nbsp;<a href="#196">getAll()</a></td>
      <td class="danger big">       <div class="progress progress-danger" style="width: 100px;">
        <div class="bar" style="width: 0.00%;"></div>
       </div>
</td>
      <td class="danger small"><div align="right">0.00%</div></td>
      <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
      <td class="danger small">2</td>
      <td class="danger big">       <div class="progress progress-danger" style="width: 100px;">
        <div class="bar" style="width: 0.00%;"></div>
       </div>
</td>
      <td class="danger small"><div align="right">0.00%</div></td>
      <td class="danger small"><div align="right">0&nbsp;/&nbsp;3</div></td>
     </tr>


    </tbody>
   </table>
   <table class="table table-borderless table-condensed">
    <tbody>
     <tr><td><div align="right"><a name="1"></a><a href="#1">1</a></div></td><td class="codeLine">&lt;?php</td></tr>
     <tr><td><div align="right"><a name="2"></a><a href="#2">2</a></div></td><td class="codeLine">namespace Services;</td></tr>
     <tr><td><div align="right"><a name="3"></a><a href="#3">3</a></div></td><td class="codeLine">/**</td></tr>
     <tr><td><div align="right"><a name="4"></a><a href="#4">4</a></div></td><td class="codeLine"> * File holds class for account data manipulation</td></tr>
     <tr><td><div align="right"><a name="5"></a><a href="#5">5</a></div></td><td class="codeLine"> *</td></tr>
     <tr><td><div align="right"><a name="6"></a><a href="#6">6</a></div></td><td class="codeLine"> * PHP version 5.3.5</td></tr>
     <tr><td><div align="right"><a name="7"></a><a href="#7">7</a></div></td><td class="codeLine"> *</td></tr>
     <tr><td><div align="right"><a name="8"></a><a href="#8">8</a></div></td><td class="codeLine"> * @category   CM</td></tr>
     <tr><td><div align="right"><a name="9"></a><a href="#9">9</a></div></td><td class="codeLine"> * @package    Services</td></tr>
     <tr><td><div align="right"><a name="10"></a><a href="#10">10</a></div></td><td class="codeLine"> * @subpackage -</td></tr>
     <tr><td><div align="right"><a name="11"></a><a href="#11">11</a></div></td><td class="codeLine"> * @author     markus karileet &lt;markuskarileet@hotmail.com&gt;</td></tr>
     <tr><td><div align="right"><a name="12"></a><a href="#12">12</a></div></td><td class="codeLine"> * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL</td></tr>
     <tr><td><div align="right"><a name="13"></a><a href="#13">13</a></div></td><td class="codeLine"> * @link       -</td></tr>
     <tr><td><div align="right"><a name="14"></a><a href="#14">14</a></div></td><td class="codeLine"> */</td></tr>
     <tr><td><div align="right"><a name="15"></a><a href="#15">15</a></div></td><td class="codeLine">class Account extends ORM {</td></tr>
     <tr><td><div align="right"><a name="16"></a><a href="#16">16</a></div></td><td class="codeLine">    /**</td></tr>
     <tr><td><div align="right"><a name="17"></a><a href="#17">17</a></div></td><td class="codeLine">     * Method checks if account data in session id valid.</td></tr>
     <tr><td><div align="right"><a name="18"></a><a href="#18">18</a></div></td><td class="codeLine">     * @return \Entities\Account When check is successful, account info is</td></tr>
     <tr><td><div align="right"><a name="19"></a><a href="#19">19</a></div></td><td class="codeLine">     * returned, false otherwise</td></tr>
     <tr><td><div align="right"><a name="20"></a><a href="#20">20</a></div></td><td class="codeLine">     * @throws \Exception</td></tr>
     <tr><td><div align="right"><a name="21"></a><a href="#21">21</a></div></td><td class="codeLine">     */</td></tr>
     <tr><td><div align="right"><a name="22"></a><a href="#22">22</a></div></td><td class="codeLine">    public function checkToken() {</td></tr>
     <tr class="success popin" data-title="3 tests cover line 23" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testCheckTokenNoToken&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testCheckToken&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testCheckTokenTamperedData&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="23"></a><a href="#23">23</a></div></td><td class="codeLine">        $this-&gt;_logger-&gt;debug('Checking authentication token');</td></tr>
     <tr class="success popin" data-title="3 tests cover line 24" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testCheckTokenNoToken&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testCheckToken&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testCheckTokenTamperedData&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="24"></a><a href="#24">24</a></div></td><td class="codeLine">        $valid = false;</td></tr>
     <tr class="success popin" data-title="3 tests cover line 25" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testCheckTokenNoToken&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testCheckToken&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testCheckTokenTamperedData&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="25"></a><a href="#25">25</a></div></td><td class="codeLine">        if (isset($_SESSION['userid'])) {</td></tr>
     <tr><td><div align="right"><a name="26"></a><a href="#26">26</a></div></td><td class="codeLine">            //try to read user from DB using session parameters</td></tr>
     <tr class="success popin" data-title="2 tests cover line 27" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testCheckToken&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testCheckTokenTamperedData&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="27"></a><a href="#27">27</a></div></td><td class="codeLine">            $template = new \Entities\Account();</td></tr>
     <tr><td><div align="right"><a name="28"></a><a href="#28">28</a></div></td><td class="codeLine">            //get logged in user ID</td></tr>
     <tr class="success popin" data-title="2 tests cover line 29" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testCheckToken&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testCheckTokenTamperedData&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="29"></a><a href="#29">29</a></div></td><td class="codeLine">            $template-&gt;setId((int)$_SESSION['userid']);</td></tr>
     <tr><td><div align="right"><a name="30"></a><a href="#30">30</a></div></td><td class="codeLine">            //retrieve the user from database</td></tr>
     <tr class="success popin" data-title="2 tests cover line 31" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testCheckToken&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testCheckTokenTamperedData&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="31"></a><a href="#31">31</a></div></td><td class="codeLine">            $loggedUser = $this-&gt;select($template);</td></tr>
     <tr><td><div align="right"><a name="32"></a><a href="#32">32</a></div></td><td class="codeLine">            //if user was found, check if session data is tampered or not</td></tr>
     <tr class="success popin" data-title="2 tests cover line 33" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testCheckToken&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testCheckTokenTamperedData&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="33"></a><a href="#33">33</a></div></td><td class="codeLine">            if ($loggedUser) {</td></tr>
     <tr class="success popin" data-title="2 tests cover line 34" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testCheckToken&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testCheckTokenTamperedData&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="34"></a><a href="#34">34</a></div></td><td class="codeLine">                if (@$_SESSION['token'] == self::_generateToken(</td></tr>
     <tr class="success popin" data-title="2 tests cover line 35" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testCheckToken&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testCheckTokenTamperedData&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="35"></a><a href="#35">35</a></div></td><td class="codeLine">                    $loggedUser-&gt;getId(),</td></tr>
     <tr class="success popin" data-title="2 tests cover line 36" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testCheckToken&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testCheckTokenTamperedData&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="36"></a><a href="#36">36</a></div></td><td class="codeLine">                    $loggedUser-&gt;getName(),</td></tr>
     <tr class="success popin" data-title="2 tests cover line 37" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testCheckToken&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testCheckTokenTamperedData&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="37"></a><a href="#37">37</a></div></td><td class="codeLine">                    $loggedUser-&gt;getLastlogin()</td></tr>
     <tr class="success popin" data-title="2 tests cover line 38" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testCheckToken&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testCheckTokenTamperedData&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="38"></a><a href="#38">38</a></div></td><td class="codeLine">                )) {</td></tr>
     <tr><td><div align="right"><a name="39"></a><a href="#39">39</a></div></td><td class="codeLine">                    //session data untampered, user really is user with 'userid'</td></tr>
     <tr class="success popin" data-title="1 test covers line 40" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testCheckToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="40"></a><a href="#40">40</a></div></td><td class="codeLine">                    $this-&gt;_logger-&gt;debug('Got valid token');</td></tr>
     <tr class="success popin" data-title="1 test covers line 41" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testCheckToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="41"></a><a href="#41">41</a></div></td><td class="codeLine">                    $valid = $loggedUser;</td></tr>
     <tr><td><div align="right"><a name="42"></a><a href="#42">42</a></div></td><td class="codeLine">//removed this block since when userid is found, but tokens do not</td></tr>
     <tr><td><div align="right"><a name="43"></a><a href="#43">43</a></div></td><td class="codeLine">//match, then its a hack!</td></tr>
     <tr><td><div align="right"><a name="44"></a><a href="#44">44</a></div></td><td class="codeLine">                /*} else if (!isset($_SESSION['token'])) {</td></tr>
     <tr><td><div align="right"><a name="45"></a><a href="#45">45</a></div></td><td class="codeLine">                    $this-&gt;_logger-&gt;debug('Token not found, regular user!');*/</td></tr>
     <tr class="success popin" data-title="1 test covers line 46" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testCheckToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="46"></a><a href="#46">46</a></div></td><td class="codeLine">                } else {</td></tr>
     <tr><td><div align="right"><a name="47"></a><a href="#47">47</a></div></td><td class="codeLine">                    //token is found but does not match with the one generated</td></tr>
     <tr><td><div align="right"><a name="48"></a><a href="#48">48</a></div></td><td class="codeLine">                    //from user data, so it is safe to say that</td></tr>
     <tr><td><div align="right"><a name="49"></a><a href="#49">49</a></div></td><td class="codeLine">                    //session data is corrupt, unset session and return false</td></tr>
     <tr class="success popin" data-title="1 test covers line 50" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testCheckTokenTamperedData&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="50"></a><a href="#50">50</a></div></td><td class="codeLine">                    $this-&gt;_logger-&gt;info('Tokens do not match, clearing user session');</td></tr>
     <tr class="success popin" data-title="1 test covers line 51" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testCheckTokenTamperedData&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="51"></a><a href="#51">51</a></div></td><td class="codeLine">                    $this-&gt;clearUserData();</td></tr>
     <tr><td><div align="right"><a name="52"></a><a href="#52">52</a></div></td><td class="codeLine">                }</td></tr>
     <tr class="success popin" data-title="2 tests cover line 53" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testCheckToken&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testCheckTokenTamperedData&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="53"></a><a href="#53">53</a></div></td><td class="codeLine">            }</td></tr>
     <tr class="success popin" data-title="2 tests cover line 54" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testCheckToken&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testCheckTokenTamperedData&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="54"></a><a href="#54">54</a></div></td><td class="codeLine">        }</td></tr>
     <tr class="success popin" data-title="3 tests cover line 55" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testCheckTokenNoToken&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testCheckToken&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testCheckTokenTamperedData&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="55"></a><a href="#55">55</a></div></td><td class="codeLine">        return $valid;</td></tr>
     <tr><td><div align="right"><a name="56"></a><a href="#56">56</a></div></td><td class="codeLine">    }</td></tr>
     <tr><td><div align="right"><a name="57"></a><a href="#57">57</a></div></td><td class="codeLine"></td></tr>
     <tr><td><div align="right"><a name="58"></a><a href="#58">58</a></div></td><td class="codeLine">    /**</td></tr>
     <tr><td><div align="right"><a name="59"></a><a href="#59">59</a></div></td><td class="codeLine">     * Method authentices user from username and password. When match from</td></tr>
     <tr><td><div align="right"><a name="60"></a><a href="#60">60</a></div></td><td class="codeLine">     * DB is found, user info session is set and account last login time is</td></tr>
     <tr><td><div align="right"><a name="61"></a><a href="#61">61</a></div></td><td class="codeLine">     * updated</td></tr>
     <tr><td><div align="right"><a name="62"></a><a href="#62">62</a></div></td><td class="codeLine">     * @param array $post HTML POST array</td></tr>
     <tr><td><div align="right"><a name="63"></a><a href="#63">63</a></div></td><td class="codeLine">     * @return \Entities\Account Account info on success, false otherwise</td></tr>
     <tr><td><div align="right"><a name="64"></a><a href="#64">64</a></div></td><td class="codeLine">     * @throws \Exception</td></tr>
     <tr><td><div align="right"><a name="65"></a><a href="#65">65</a></div></td><td class="codeLine">     */</td></tr>
     <tr><td><div align="right"><a name="66"></a><a href="#66">66</a></div></td><td class="codeLine">    public function authenticate($post) {</td></tr>
     <tr><td><div align="right"><a name="67"></a><a href="#67">67</a></div></td><td class="codeLine">        //Read user from DB using username and pass</td></tr>
     <tr class="success popin" data-title="2 tests cover line 68" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testAuthenticate&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testAuthenticateFailed&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="68"></a><a href="#68">68</a></div></td><td class="codeLine">        $this-&gt;_logger-&gt;debug('Authenticating user: ' . $post['name']);</td></tr>
     <tr class="success popin" data-title="2 tests cover line 69" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testAuthenticate&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testAuthenticateFailed&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="69"></a><a href="#69">69</a></div></td><td class="codeLine">        $template = new \Entities\Account();</td></tr>
     <tr class="success popin" data-title="2 tests cover line 70" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testAuthenticate&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testAuthenticateFailed&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="70"></a><a href="#70">70</a></div></td><td class="codeLine">        $template-&gt;setName(\Misc\Tools::cleanInput($post['name']));</td></tr>
     <tr class="success popin" data-title="2 tests cover line 71" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testAuthenticate&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testAuthenticateFailed&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="71"></a><a href="#71">71</a></div></td><td class="codeLine">        $template-&gt;setPassword(sha1($post['password']));</td></tr>
     <tr class="success popin" data-title="2 tests cover line 72" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testAuthenticate&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testAuthenticateFailed&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="72"></a><a href="#72">72</a></div></td><td class="codeLine">        $authUser = $this-&gt;select($template);</td></tr>
     <tr><td><div align="right"><a name="73"></a><a href="#73">73</a></div></td><td class="codeLine">        //when user is found, set sessoin data</td></tr>
     <tr class="success popin" data-title="2 tests cover line 74" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testAuthenticate&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testAuthenticateFailed&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="74"></a><a href="#74">74</a></div></td><td class="codeLine">        if ($authUser) {</td></tr>
     <tr class="success popin" data-title="1 test covers line 75" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testAuthenticate&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="75"></a><a href="#75">75</a></div></td><td class="codeLine">            $loginTime = time();</td></tr>
     <tr class="success popin" data-title="1 test covers line 76" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testAuthenticate&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="76"></a><a href="#76">76</a></div></td><td class="codeLine">            $_SESSION['userid'] = $authUser-&gt;getId();</td></tr>
     <tr class="success popin" data-title="1 test covers line 77" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testAuthenticate&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="77"></a><a href="#77">77</a></div></td><td class="codeLine">            $_SESSION['token'] = self::_generateToken(</td></tr>
     <tr class="success popin" data-title="1 test covers line 78" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testAuthenticate&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="78"></a><a href="#78">78</a></div></td><td class="codeLine">                $authUser-&gt;getId(),</td></tr>
     <tr class="success popin" data-title="1 test covers line 79" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testAuthenticate&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="79"></a><a href="#79">79</a></div></td><td class="codeLine">                $authUser-&gt;getName(),</td></tr>
     <tr><td><div align="right"><a name="80"></a><a href="#80">80</a></div></td><td class="codeLine">                $loginTime</td></tr>
     <tr class="success popin" data-title="1 test covers line 81" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testAuthenticate&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="81"></a><a href="#81">81</a></div></td><td class="codeLine">            );</td></tr>
     <tr><td><div align="right"><a name="82"></a><a href="#82">82</a></div></td><td class="codeLine">            //update login time</td></tr>
     <tr class="success popin" data-title="1 test covers line 83" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testAuthenticate&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="83"></a><a href="#83">83</a></div></td><td class="codeLine">            $authUser-&gt;setLastlogin($loginTime);</td></tr>
     <tr class="success popin" data-title="1 test covers line 84" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testAuthenticate&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="84"></a><a href="#84">84</a></div></td><td class="codeLine">            $this-&gt;update($authUser);</td></tr>
     <tr class="success popin" data-title="1 test covers line 85" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testAuthenticate&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="85"></a><a href="#85">85</a></div></td><td class="codeLine">            $this-&gt;_logger-&gt;debug('User is valid, logging in!');</td></tr>
     <tr class="success popin" data-title="1 test covers line 86" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testAuthenticate&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="86"></a><a href="#86">86</a></div></td><td class="codeLine">        } else {</td></tr>
     <tr class="success popin" data-title="1 test covers line 87" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testAuthenticateFailed&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="87"></a><a href="#87">87</a></div></td><td class="codeLine">            $this-&gt;_logger-&gt;debug('Login unsuccessful!');</td></tr>
     <tr><td><div align="right"><a name="88"></a><a href="#88">88</a></div></td><td class="codeLine">        }</td></tr>
     <tr><td><div align="right"><a name="89"></a><a href="#89">89</a></div></td><td class="codeLine">        //return false or authenticated user</td></tr>
     <tr class="success popin" data-title="2 tests cover line 90" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testAuthenticate&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testAuthenticateFailed&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="90"></a><a href="#90">90</a></div></td><td class="codeLine">        return $authUser;</td></tr>
     <tr><td><div align="right"><a name="91"></a><a href="#91">91</a></div></td><td class="codeLine">    }</td></tr>
     <tr><td><div align="right"><a name="92"></a><a href="#92">92</a></div></td><td class="codeLine"></td></tr>
     <tr><td><div align="right"><a name="93"></a><a href="#93">93</a></div></td><td class="codeLine">    /**</td></tr>
     <tr><td><div align="right"><a name="94"></a><a href="#94">94</a></div></td><td class="codeLine">     * Method generates checksum token from user login info</td></tr>
     <tr><td><div align="right"><a name="95"></a><a href="#95">95</a></div></td><td class="codeLine">     * @param int $id User ID</td></tr>
     <tr><td><div align="right"><a name="96"></a><a href="#96">96</a></div></td><td class="codeLine">     * @param var $name User name</td></tr>
     <tr><td><div align="right"><a name="97"></a><a href="#97">97</a></div></td><td class="codeLine">     * @param int $time Last login time</td></tr>
     <tr><td><div align="right"><a name="98"></a><a href="#98">98</a></div></td><td class="codeLine">     * @return SHA1 hash from attributes</td></tr>
     <tr><td><div align="right"><a name="99"></a><a href="#99">99</a></div></td><td class="codeLine">     */</td></tr>
     <tr><td><div align="right"><a name="100"></a><a href="#100">100</a></div></td><td class="codeLine">    private static function _generateToken($id, $name, $time) {</td></tr>
     <tr class="success popin" data-title="3 tests cover line 101" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testAuthenticate&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testCheckToken&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testCheckTokenTamperedData&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="101"></a><a href="#101">101</a></div></td><td class="codeLine">        return sha1(sprintf('%d1%s2%s', $id, $name, $time));</td></tr>
     <tr><td><div align="right"><a name="102"></a><a href="#102">102</a></div></td><td class="codeLine">    }</td></tr>
     <tr><td><div align="right"><a name="103"></a><a href="#103">103</a></div></td><td class="codeLine"></td></tr>
     <tr><td><div align="right"><a name="104"></a><a href="#104">104</a></div></td><td class="codeLine">    /**</td></tr>
     <tr><td><div align="right"><a name="105"></a><a href="#105">105</a></div></td><td class="codeLine">     * Method unsets user session</td></tr>
     <tr><td><div align="right"><a name="106"></a><a href="#106">106</a></div></td><td class="codeLine">     */</td></tr>
     <tr><td><div align="right"><a name="107"></a><a href="#107">107</a></div></td><td class="codeLine">    public function clearUserData() {</td></tr>
     <tr class="success popin" data-title="2 tests cover line 108" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testClearUserData&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testCheckTokenTamperedData&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="108"></a><a href="#108">108</a></div></td><td class="codeLine">        unset($_SESSION['token']);</td></tr>
     <tr class="success popin" data-title="2 tests cover line 109" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testClearUserData&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testCheckTokenTamperedData&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="109"></a><a href="#109">109</a></div></td><td class="codeLine">        unset($_SESSION['userid']);</td></tr>
     <tr class="success popin" data-title="2 tests cover line 110" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testClearUserData&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testCheckTokenTamperedData&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="110"></a><a href="#110">110</a></div></td><td class="codeLine">    }</td></tr>
     <tr><td><div align="right"><a name="111"></a><a href="#111">111</a></div></td><td class="codeLine"></td></tr>
     <tr><td><div align="right"><a name="112"></a><a href="#112">112</a></div></td><td class="codeLine">    /**</td></tr>
     <tr><td><div align="right"><a name="113"></a><a href="#113">113</a></div></td><td class="codeLine">     * Method updates user account. When newpassword element is set, system</td></tr>
     <tr><td><div align="right"><a name="114"></a><a href="#114">114</a></div></td><td class="codeLine">     * changes user password</td></tr>
     <tr><td><div align="right"><a name="115"></a><a href="#115">115</a></div></td><td class="codeLine">     * @param array $post HTTP POST</td></tr>
     <tr><td><div align="right"><a name="116"></a><a href="#116">116</a></div></td><td class="codeLine">     * @param \Entities\Account $user Account to update</td></tr>
     <tr><td><div align="right"><a name="117"></a><a href="#117">117</a></div></td><td class="codeLine">     * @return boolean true on success, false on error</td></tr>
     <tr><td><div align="right"><a name="118"></a><a href="#118">118</a></div></td><td class="codeLine">     * @throws \Exception</td></tr>
     <tr><td><div align="right"><a name="119"></a><a href="#119">119</a></div></td><td class="codeLine">     */</td></tr>
     <tr><td><div align="right"><a name="120"></a><a href="#120">120</a></div></td><td class="codeLine">    public function prepareUpdate($post, $user) {</td></tr>
     <tr><td><div align="right"><a name="121"></a><a href="#121">121</a></div></td><td class="codeLine">        //user authentication failed at previous point (FIXME: maybe move this into view?)</td></tr>
     <tr class="success popin" data-title="3 tests cover line 122" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testUpdate&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testUpdatePassword&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testUpdateWithNoUser&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="122"></a><a href="#122">122</a></div></td><td class="codeLine">        if (!$user) {</td></tr>
     <tr class="success popin" data-title="1 test covers line 123" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testUpdateWithNoUser&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="123"></a><a href="#123">123</a></div></td><td class="codeLine">            throw new \Exception('User object not present!');</td></tr>
     <tr><td><div align="right"><a name="124"></a><a href="#124">124</a></div></td><td class="codeLine">        }</td></tr>
     <tr><td><div align="right"><a name="125"></a><a href="#125">125</a></div></td><td class="codeLine">        //since notify is checkbox, if set, then user wants to get notifications</td></tr>
     <tr class="success popin" data-title="2 tests cover line 126" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testUpdate&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testUpdatePassword&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="126"></a><a href="#126">126</a></div></td><td class="codeLine">        if (isset($post['notify'])) {</td></tr>
     <tr class="success popin" data-title="1 test covers line 127" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testUpdate&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="127"></a><a href="#127">127</a></div></td><td class="codeLine">            $user-&gt;setNotification(\Enum\Notification::Email);</td></tr>
     <tr class="success popin" data-title="1 test covers line 128" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testUpdate&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="128"></a><a href="#128">128</a></div></td><td class="codeLine">        } else {</td></tr>
     <tr class="success popin" data-title="1 test covers line 129" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testUpdatePassword&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="129"></a><a href="#129">129</a></div></td><td class="codeLine">            $user-&gt;setNotification(\Enum\Notification::No);</td></tr>
     <tr><td><div align="right"><a name="130"></a><a href="#130">130</a></div></td><td class="codeLine">        }</td></tr>
     <tr class="success popin" data-title="2 tests cover line 131" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testUpdate&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testUpdatePassword&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="131"></a><a href="#131">131</a></div></td><td class="codeLine">        $user-&gt;setEmail(\Misc\Tools::cleanInput($post['email']));</td></tr>
     <tr><td><div align="right"><a name="132"></a><a href="#132">132</a></div></td><td class="codeLine"></td></tr>
     <tr><td><div align="right"><a name="133"></a><a href="#133">133</a></div></td><td class="codeLine">        //when type is set, use it. Admins can set this, regular users do not</td></tr>
     <tr><td><div align="right"><a name="134"></a><a href="#134">134</a></div></td><td class="codeLine">        //have this field, so this is unset</td></tr>
     <tr class="success popin" data-title="2 tests cover line 135" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testUpdate&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testUpdatePassword&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="135"></a><a href="#135">135</a></div></td><td class="codeLine">        if (isset($post['type'])) {</td></tr>
     <tr class="success popin" data-title="1 test covers line 136" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testUpdate&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="136"></a><a href="#136">136</a></div></td><td class="codeLine">            $user-&gt;setType((int)$post['type']);</td></tr>
     <tr class="success popin" data-title="1 test covers line 137" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testUpdate&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="137"></a><a href="#137">137</a></div></td><td class="codeLine">        }</td></tr>
     <tr class="success popin" data-title="2 tests cover line 138" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testUpdate&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testUpdatePassword&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="138"></a><a href="#138">138</a></div></td><td class="codeLine">        $user-&gt;setPhone(\Misc\Tools::cleanInput($post['phone']));</td></tr>
     <tr><td><div align="right"><a name="139"></a><a href="#139">139</a></div></td><td class="codeLine">        //if new password is set, use it</td></tr>
     <tr class="success popin" data-title="2 tests cover line 140" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testUpdate&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testUpdatePassword&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="140"></a><a href="#140">140</a></div></td><td class="codeLine">        if (strlen(@$post['newpassword']) &gt; 0) {</td></tr>
     <tr class="success popin" data-title="1 test covers line 141" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testUpdatePassword&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="141"></a><a href="#141">141</a></div></td><td class="codeLine">            $user-&gt;setPassword(sha1($post['newpassword']));</td></tr>
     <tr class="success popin" data-title="1 test covers line 142" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testUpdatePassword&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="142"></a><a href="#142">142</a></div></td><td class="codeLine">        }</td></tr>
     <tr class="success popin" data-title="2 tests cover line 143" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testUpdate&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testUpdatePassword&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="143"></a><a href="#143">143</a></div></td><td class="codeLine">        return $this-&gt;update($user);</td></tr>
     <tr><td><div align="right"><a name="144"></a><a href="#144">144</a></div></td><td class="codeLine">    }</td></tr>
     <tr><td><div align="right"><a name="145"></a><a href="#145">145</a></div></td><td class="codeLine"></td></tr>
     <tr><td><div align="right"><a name="146"></a><a href="#146">146</a></div></td><td class="codeLine">    /**</td></tr>
     <tr><td><div align="right"><a name="147"></a><a href="#147">147</a></div></td><td class="codeLine">     * Method inserts new account to database.</td></tr>
     <tr><td><div align="right"><a name="148"></a><a href="#148">148</a></div></td><td class="codeLine">     * @param var $post HTTP POST</td></tr>
     <tr><td><div align="right"><a name="149"></a><a href="#149">149</a></div></td><td class="codeLine">     * @return int Insert ID when successful</td></tr>
     <tr><td><div align="right"><a name="150"></a><a href="#150">150</a></div></td><td class="codeLine">     * @throws \Exception</td></tr>
     <tr><td><div align="right"><a name="151"></a><a href="#151">151</a></div></td><td class="codeLine">     */</td></tr>
     <tr><td><div align="right"><a name="152"></a><a href="#152">152</a></div></td><td class="codeLine">    public function prepareInsert($post) {</td></tr>
     <tr class="success popin" data-title="4 tests cover line 153" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testInsertWithNotify&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testInsertWithoutNotify&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testInsertFailEmptyPost&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testInsertFailPasswordMismatch&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="153"></a><a href="#153">153</a></div></td><td class="codeLine">        $id = 0;</td></tr>
     <tr><td><div align="right"><a name="154"></a><a href="#154">154</a></div></td><td class="codeLine">        //only update when post is present and passwords match</td></tr>
     <tr class="success popin" data-title="4 tests cover line 155" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testInsertWithNotify&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testInsertWithoutNotify&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testInsertFailEmptyPost&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testInsertFailPasswordMismatch&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="155"></a><a href="#155">155</a></div></td><td class="codeLine">        if(isset($post) &amp;&amp; count($post) &gt; 0 &amp;&amp; $post['password'] == $post['r_password'] ) {</td></tr>
     <tr class="success popin" data-title="2 tests cover line 156" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testInsertWithNotify&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testInsertWithoutNotify&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="156"></a><a href="#156">156</a></div></td><td class="codeLine">            $account = new \Entities\Account();</td></tr>
     <tr class="success popin" data-title="2 tests cover line 157" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testInsertWithNotify&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testInsertWithoutNotify&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="157"></a><a href="#157">157</a></div></td><td class="codeLine">            $account-&gt;setContract(&quot;0&quot;); //TODO: set contract in the future</td></tr>
     <tr class="success popin" data-title="2 tests cover line 158" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testInsertWithNotify&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testInsertWithoutNotify&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="158"></a><a href="#158">158</a></div></td><td class="codeLine">            $account-&gt;setEmail(\Misc\Tools::cleanInput($post['email']));</td></tr>
     <tr class="success popin" data-title="2 tests cover line 159" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testInsertWithNotify&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testInsertWithoutNotify&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="159"></a><a href="#159">159</a></div></td><td class="codeLine">            $account-&gt;setLastlogin(&quot;0&quot;);</td></tr>
     <tr class="success popin" data-title="2 tests cover line 160" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testInsertWithNotify&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testInsertWithoutNotify&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="160"></a><a href="#160">160</a></div></td><td class="codeLine">            $account-&gt;setName(\Misc\Tools::cleanInput($post['name']));</td></tr>
     <tr><td><div align="right"><a name="161"></a><a href="#161">161</a></div></td><td class="codeLine"></td></tr>
     <tr><td><div align="right"><a name="162"></a><a href="#162">162</a></div></td><td class="codeLine">            //since notify is checkbox, if set, then user wants to get notifications</td></tr>
     <tr class="success popin" data-title="2 tests cover line 163" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testInsertWithNotify&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testInsertWithoutNotify&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="163"></a><a href="#163">163</a></div></td><td class="codeLine">            if (isset($post['notify'])) {</td></tr>
     <tr class="success popin" data-title="1 test covers line 164" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testInsertWithNotify&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="164"></a><a href="#164">164</a></div></td><td class="codeLine">                $account-&gt;setNotification(\Enum\Notification::Email);</td></tr>
     <tr class="success popin" data-title="1 test covers line 165" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testInsertWithNotify&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="165"></a><a href="#165">165</a></div></td><td class="codeLine">            } else {</td></tr>
     <tr class="success popin" data-title="1 test covers line 166" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testInsertWithoutNotify&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="166"></a><a href="#166">166</a></div></td><td class="codeLine">                $account-&gt;setNotification(\Enum\Notification::No);</td></tr>
     <tr><td><div align="right"><a name="167"></a><a href="#167">167</a></div></td><td class="codeLine">            }</td></tr>
     <tr class="success popin" data-title="2 tests cover line 168" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testInsertWithNotify&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testInsertWithoutNotify&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="168"></a><a href="#168">168</a></div></td><td class="codeLine">            $account-&gt;setPassword(sha1($post['password']));</td></tr>
     <tr class="success popin" data-title="2 tests cover line 169" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testInsertWithNotify&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testInsertWithoutNotify&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="169"></a><a href="#169">169</a></div></td><td class="codeLine">            $account-&gt;setGivenname(\Misc\Tools::cleanInput($post['givenname']));</td></tr>
     <tr class="success popin" data-title="2 tests cover line 170" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testInsertWithNotify&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testInsertWithoutNotify&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="170"></a><a href="#170">170</a></div></td><td class="codeLine">            $account-&gt;setPhone(\Misc\Tools::cleanInput($post['phone']));</td></tr>
     <tr class="success popin" data-title="2 tests cover line 171" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testInsertWithNotify&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testInsertWithoutNotify&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="171"></a><a href="#171">171</a></div></td><td class="codeLine">            $account-&gt;setType(\Enum\AccountType::Client);</td></tr>
     <tr class="success popin" data-title="2 tests cover line 172" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testInsertWithNotify&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testInsertWithoutNotify&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="172"></a><a href="#172">172</a></div></td><td class="codeLine">            $id = $this-&gt;insert($account);</td></tr>
     <tr class="success popin" data-title="2 tests cover line 173" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testInsertWithNotify&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testInsertWithoutNotify&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="173"></a><a href="#173">173</a></div></td><td class="codeLine">        } else {</td></tr>
     <tr class="success popin" data-title="2 tests cover line 174" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testInsertFailEmptyPost&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testInsertFailPasswordMismatch&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="174"></a><a href="#174">174</a></div></td><td class="codeLine">            $this-&gt;_logger-&gt;error('Insert failed since $_POST is empty or passwords did not match!');</td></tr>
     <tr><td><div align="right"><a name="175"></a><a href="#175">175</a></div></td><td class="codeLine">        }</td></tr>
     <tr class="success popin" data-title="4 tests cover line 176" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testInsertWithNotify&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testInsertWithoutNotify&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testInsertFailEmptyPost&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testInsertFailPasswordMismatch&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="176"></a><a href="#176">176</a></div></td><td class="codeLine">        return $id;</td></tr>
     <tr><td><div align="right"><a name="177"></a><a href="#177">177</a></div></td><td class="codeLine">    }</td></tr>
     <tr><td><div align="right"><a name="178"></a><a href="#178">178</a></div></td><td class="codeLine"></td></tr>
     <tr><td><div align="right"><a name="179"></a><a href="#179">179</a></div></td><td class="codeLine">    /**</td></tr>
     <tr><td><div align="right"><a name="180"></a><a href="#180">180</a></div></td><td class="codeLine">     * Method returns list of admins that want to get notifications</td></tr>
     <tr><td><div align="right"><a name="181"></a><a href="#181">181</a></div></td><td class="codeLine">     * @return array Array of accounts</td></tr>
     <tr><td><div align="right"><a name="182"></a><a href="#182">182</a></div></td><td class="codeLine">     * @throws \Exception</td></tr>
     <tr><td><div align="right"><a name="183"></a><a href="#183">183</a></div></td><td class="codeLine">     */</td></tr>
     <tr><td><div align="right"><a name="184"></a><a href="#184">184</a></div></td><td class="codeLine">    public function getAdminsToNotify() {</td></tr>
     <tr class="success popin" data-title="1 test covers line 185" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testGetAdminsToNotify&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="185"></a><a href="#185">185</a></div></td><td class="codeLine">        $tmpl = new \Entities\Account();</td></tr>
     <tr class="success popin" data-title="1 test covers line 186" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testGetAdminsToNotify&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="186"></a><a href="#186">186</a></div></td><td class="codeLine">        $tmpl-&gt;setNotification(\Enum\Notification::Email);</td></tr>
     <tr class="success popin" data-title="1 test covers line 187" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testGetAdminsToNotify&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="187"></a><a href="#187">187</a></div></td><td class="codeLine">        $tmpl-&gt;setType(\Enum\AccountType::Admin);</td></tr>
     <tr class="success popin" data-title="1 test covers line 188" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;AccountTest::testGetAdminsToNotify&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="188"></a><a href="#188">188</a></div></td><td class="codeLine">        return $this-&gt;selectMulti($tmpl);</td></tr>
     <tr><td><div align="right"><a name="189"></a><a href="#189">189</a></div></td><td class="codeLine">    }</td></tr>
     <tr><td><div align="right"><a name="190"></a><a href="#190">190</a></div></td><td class="codeLine"></td></tr>
     <tr><td><div align="right"><a name="191"></a><a href="#191">191</a></div></td><td class="codeLine">    /**</td></tr>
     <tr><td><div align="right"><a name="192"></a><a href="#192">192</a></div></td><td class="codeLine">     * Method returns all accounts</td></tr>
     <tr><td><div align="right"><a name="193"></a><a href="#193">193</a></div></td><td class="codeLine">     * @return arraay Array of accounts</td></tr>
     <tr><td><div align="right"><a name="194"></a><a href="#194">194</a></div></td><td class="codeLine">     * @throws \Exception</td></tr>
     <tr><td><div align="right"><a name="195"></a><a href="#195">195</a></div></td><td class="codeLine">     */</td></tr>
     <tr><td><div align="right"><a name="196"></a><a href="#196">196</a></div></td><td class="codeLine">    public function getAll() {</td></tr>
     <tr class="danger"><td><div align="right"><a name="197"></a><a href="#197">197</a></div></td><td class="codeLine">        $account = new \Entities\Account();</td></tr>
     <tr class="danger"><td><div align="right"><a name="198"></a><a href="#198">198</a></div></td><td class="codeLine">        $accounts = $this-&gt;selectMulti($account);</td></tr>
     <tr class="danger"><td><div align="right"><a name="199"></a><a href="#199">199</a></div></td><td class="codeLine">        return $accounts;</td></tr>
     <tr><td><div align="right"><a name="200"></a><a href="#200">200</a></div></td><td class="codeLine">    }</td></tr>

    </tbody>
   </table>
   <footer>
    <h4>Legend</h4>
    <p>
     <span class="success"><strong>Executed</strong></span>
     <span class="danger"><strong>Not Executed</strong></span>
     <span class="warning"><strong>Dead Code</strong></span>
    </p>
    <p>
     <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 1.2.12</a> using <a href="http://www.php.net/" target="_top">PHP 5.3.10</a> and <a href="http://phpunit.de/">PHPUnit 3.7.24</a> at Thu Sep 12 10:14:44 EEST 2013.</small>
    </p>
   </footer>
  </div>
  <script src="js/jquery.min.js" type="text/javascript"></script>
  <script src="js/bootstrap.min.js" type="text/javascript"></script>
  <script type="text/javascript">$('.popin').popover({trigger: 'hover'});</script>
 </body>
</html>
